package com.ynet.middleground.contract.bean;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author daigaole
 * @description 新建档案请求
 * @date 2020-03-18
 */
@Data
@ApiModel(value = "新建档案请求对象", description = "新建档案请求对象")
public class NewArchiveReq extends EnterpriseBaseReqObj {

    private static final long serialVersionUID = -1694979948717984521L;

    @ApiModelProperty(value = "业态公司 id \n（仅综合管理平台使用）", notes = "业态公司 id \n（仅综合管理平台使用）", dataType = "Integer")
    private Integer formatId;

    /**
     * busId
     */
    @ApiModelProperty(value = "渠道端业务id", notes = "渠道端业务id", required = true, dataType = "String")
    @NotNull(message = "合约 id不能为空")
    private String busId;

    /**
     * 文件名
     */
    @ApiModelProperty(value = "文件名", notes = "文件名", required = true, dataType = "String")
    @NotBlank(message = "文件名不能为空")
    private String name;

    /**
     * 地址URl
     */
    @ApiModelProperty(value = "短路径地址(包含 Bucket) \n  如：zhongtai/file.pdf",
        notes = "短路径地址(包含 Bucket) \n  如：zhongtai/file.pdf", required = true, dataType = "String")
    @NotBlank(message = "地址短路径 URL 不能为空")
    private String url;

    /**
     * 产品类型
     */
    @ApiModelProperty(value = "产品类型", notes = "产品类型", required = true, dataType = "String")
    @NotBlank(message = "产品类型不能为空")
    private String productType;

    /**
     * 描述备注
     */
    @ApiModelProperty(value = "描述备注", notes = "描述备注", dataType = "String")
    private String description;

    /**
     * 合约类型的编号
     */
    @ApiModelProperty(value = "合约类型的编号", notes = "合约类型的编号", dataType = "String")
    private String contractTypeCode;

    /**
     * 档案涉及自然人ID
     */
    @ApiModelProperty(value = "档案涉及自然人（业务主体）ID", notes = "档案涉及自然人（业务主体）ID", dataType = "Integer")
    private Integer archiveNaturalPersonId;

    /**
     * 档案涉及企业ID
     */
    @ApiModelProperty(value = "档案涉及企业（业务主体）ID", notes = "档案涉及企业（业务主体）ID", dataType = "Integer")
    private Integer archiveEnterpriseId;

}
